package LimitedTimeGame.Day_0224;

/**
 * @author zxc
 * @date 2023/02/24 08:29
 **/

import java.util.HashSet;

/**
 * 题目 ：使得数组中所有元素都为0
 * 题目详述 ：
 * 给你一个非负整数数组 nums 。在一步操作中，你必须：
 * 选出一个正整数 x ，x 需要小于或等于 nums 中 最小 的 非零 元素。
 * nums 中的每个正整数都减去 x。
 * 返回使 nums 中所有元素都等于 0 需要的 最少 操作数
 *
 * 提示：
 * 1 <= nums.length <= 100
 * 0 <= nums[i] <= 100
 *
 */
public class MinimumOperations {
    /**
     * 思路 ：
     * ===》
     * 即，统计不同大小数字的个数
     * （1）遍历整个nums数组，同时使用hashSet结构去存储所有值 && 同时对于重复值进行去重操作;
     * （2）hashset中所存储的，就是nums数组中非重复的所有正整数;
     * ===>
     * 即，直接返回hashset中元素个数即可;
     * @param nums
     * @return
     */
    public int minimumOperations(int[] nums) {
        HashSet<Integer> hashSet = new HashSet<>();
        int len = nums.length;
        while(len > 0){
            if(nums[len - 1] > 0){
                hashSet.add(nums[len - 1]);
            }
            len--;
        }
        return hashSet.size();
    }
}
